-- -*- mode: Haskell;-*- 
-- Filename:    paratrope.cf 
-- Authors:     lgm                                                    
-- Creation:    Fri May  8 14:47:02 2009 
-- Copyright:   Not supplied 
-- Description: 
-- ------------------------------------------------------------------------

Composition     . ProcessExpr   ::= "{" [ProcessExpr1] "}"                ;
Reception       . ProcessExpr1  ::= Nominal "?" Abstraction               ;
Transmission    . ProcessExpr1  ::= Nominal "!" Concretion                ;
Transcription   . ProcessExpr1  ::= "*" Nominal                           ;
Termination     . ProcessExpr1  ::= "0"                                   ;

_               . ProcessExpr   ::= ProcessExpr1                          ;
_               . ProcessExpr1  ::= "(" ProcessExpr ")"                   ;

Suspension      . Abstraction   ::= Formals "->" ProcessExpr              ;
Provision       . Concretion    ::= Actuals                               ;

AtomLiteral     . Nominal       ::= Ident                                 ;
Encoding        . Nominal       ::= "@" "<" ProcessExpr ">"               ;

Obligation      . Formals       ::= "(" [Nominal] ")"                     ;
Remittance      . Actuals       ::= "(" [ProcessExprPlus] ")"             ;

Value           . ProcessExprPlus ::= ProcessExpr                         ;
Variable        . ProcessExprPlus ::= Nominal                             ;

[]              . [ProcessExprPlus] ::=                                   ;
(: [])          . [ProcessExprPlus] ::= ProcessExprPlus                   ;
(:)             . [ProcessExprPlus] ::= ProcessExprPlus "," [ProcessExprPlus] ;

[]              . [ProcessExpr1] ::=                                      ;
(: [])          . [ProcessExpr1] ::= ProcessExpr1                         ;
(:)             . [ProcessExpr1] ::= ProcessExpr1 "," [ProcessExpr1]      ;

[]              . [Nominal]      ::=                                      ;
(: [])          . [Nominal]      ::= Nominal                              ;
(:)             . [Nominal]      ::= Nominal "," [Nominal]                ;